home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / dev / xycreg.h < prev    next >
C/C++ Source or Header  |  1990-12-19  |  2KB  |  61 lines

  1. /*      @(#)xycreg.h 1.1 86/09/27 SMI      */
  2.  
  3. /*
  4.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  5.  */
  6. #ifndef _XYCREG_
  7. #define _XYCREG_
  8.  
  9. /*
  10.  * Common Xylogics 450/472 declarations
  11.  */
  12.  
  13. /*
  14.  * I/O space registers - byte accesses only 
  15.  */
  16. struct xydevice {        /* I/O space registers (at EE40) */
  17.     u_char    xy_iopbrel[2];    /* 1,0 - IOPB relocation */
  18.     u_char    xy_iopboff[2];    /* 3,2 - IOPB offset */
  19.     u_char    xy_resupd;    /* 5 - reset/update */
  20.     u_char    xy_csr;        /* 4 - controller status register */
  21. };
  22.  
  23. /*
  24.  * Definitions for the two types of addressing -- set by jumpers.
  25.  */
  26. #define XY_20BIT    0    /* 20 bit addressing */
  27. #define XY_24BIT    1    /* 24 bit addressing */
  28.  
  29. /*
  30.  * Macros to massage our address into 8086 style.
  31.  */
  32. #define    XYOFF(a)    ((int)(a) & 0xFFFF)
  33. #define    XYREL(xy, a)    ((xy->xy_csr & XY_ADDR24) ? \
  34.             (((int)(a) & 0xFF0000) >> 16) : \
  35.             (((int)(a) & 0xF0000) >> 4))
  36. #define XYNEWREL(f, a)    ((f == XY_24BIT) ? \
  37.             (((int)(a) & 0xFF0000) >> 16) : \
  38.             (((int)(a) & 0xF0000) >> 4))
  39.  
  40. /*
  41.  * xy_csr bits
  42.  */
  43. #define    XY_GO        0x80    /* w - start operation */
  44. #define XY_BUSY        0x80    /* r - operation in progress */
  45. #define XY_ERROR    0x40    /* r - error occurred / w450 - clear error */
  46. #define    XY_DBLERR    0x20    /* r - double error */
  47. #define    XY_INTR        0x10    /* r - interrupting / w450 - clear interrupt */
  48. #define    XY_ADDR24    0x08    /* r450 - addressing mode */
  49. #define    XY_ATTN        0x04    /* w450 - attention request */
  50. #define    XY_ACK        0x02    /* r450 - attention acknowledge */
  51. #define    XY_DREADY    0x01    /* r - drive ready */
  52.  
  53. /*
  54.  * Controller types
  55.  */
  56. #define    XYC_440        0
  57. #define    XYC_450        1
  58. #define    XYC_472        2
  59.  
  60. #endif _XYCREG_
  61.